'''
os.path模块操作目录相关函数

函数                                          说明
abspath(path)                       用于获取文件或目录的绝对路径
exists(path)                        用于判断文件或目录是否存在，如果存在迟回True,否则返回False
join(path,name)                     将目录与目录或者文件名,路径与目录文件拼接起来
splitext()                          分离文件名和扩展名(.py)
split()                             分离路径与文件名
basename(path)                      从一个目录中提取文件名
dirname(path)                       从一个路径中提取文件路径，不包括文件名
isdir(path)                         用于判断是否为路径

'''
import time
from time import sleep
import pygame
import os
import sys
os.path.abspath(r'周杰伦 - 青花瓷.mp3')  # E:\python project\基础\游戏\周杰伦 - 青花瓷.mp3

# def check_event(path,i,j):
#     for event in pygame.event.get():
#         if event.type == pygame.QUIT:
#             sys.exit()
#
#         elif event.type == pygame.KEYDOWN:
#             if event.key == pygame.K_RIGHT:  # 触发右按键
#                 if i < len(path):
#                     i += 1
#                     pygame.mixer.music.load(path[i])
#                     pygame.mixer.music.play()
#                 else:
#                     print("亲，已经是最后一首歌")
#                     print(r"请重新输入你想要选择的服务菜单")
#                     continue
#
#             elif event.key == pygame.K_LEFT:
#                 if i > 0:
#                     i -= 1
#                     pygame.mixer.music.load(path[i])
#                     pygame.mixer.music.play()
#                 else:
#                     print("亲，已经是第一首歌")
#                     sleep(1)
#                     i += 1
#                     print(r"请重新输入你想要选择的服务菜单")
#                     continue
#
#             elif event.key == pygame.K_UP:
#                 j += 0.1
#                 pygame.mixer.music.set_volume(j)
#
#             elif event.key == pygame.K_DOWN:
#                 if j > 0:
#
#                     j -= 0.1
#                     pygame.mixer.music.set_volume(j)
#                 else:
#                     print("亲，已经是静音了哦")
#
#             elif event.key == pygame.K_SPACE:
#                 print(r"暂停播放")
#                 pygame.mixer.music.play()
#
#             elif event.key == pygame.K_Q:
#                 sys.exit()



# global i
def add_music_path():
    '''将曲目的路径存放在列表中'''
    i = 0
    path = []  # 创建一个列表用来存放音乐路径

    # 获取路径下每首歌的名字并返回到一个列表当中
    music_name = os.listdir(r'D:\各种软件安装包\周杰伦音乐')
    print(music_name)

    #  将文件夹绝对路径和每一首个的名字拼接在一起，形成一首歌完整的绝对路径
    while i < len(music_name):
        lujing = os.path.join(r'D:\各种软件安装包\周杰伦音乐', music_name[i])
        path.append(lujing)
        i = i + 1
    return path

def welcom():
    print(r'''
    ♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫
    ♥        欢迎来到旺仔音乐         ♥
    ♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫♫
    ''')

def select(path,i,j,music_time):
    while True :
        print(r'''
        ******************************** *
        * 1. 播放        2. 暂停         *
        * 3. 下一曲      4. 上一曲      *
        * 5. 恢复        6.增大音量       *
        * 7. 减小音量     0 .退出          *
        **********************************
        
          ''')

        n = int(input("请输入一个数字"))

        if n==1:
            if i < len(path):
                if pygame.mixer.music.get_busy() == False:
                    print(r"正在播放音乐",music_name[i])
                    pygame.mixer.music.load(path[i])
                    pygame.mixer.music.play(loops=0, start=0)  # loops = -1，则表示无限重复播放。 MP3 OGG 的start 是以秒为单位


        elif n==2:
            print(r"暂停播放")
            pygame.mixer.music.pause()


        elif n==3:
            if i < len(path):
                i += 1
                pygame.mixer.music.load(path[i])  # 加载音乐路径
                print(r"正在播放音乐", music_name[i])
                pygame.mixer.music.play()
            else:
                print("亲，已经是最后一首歌")
                print(r"请重新输入你想要选择的服务菜单")
                continue
        elif n==4:
            if i > 0:
                i -= 1
                pygame.mixer.music.load(path[i])
                print(r"正在播放音乐", music_name[i])
                pygame.mixer.music.play()

            else:
                print("亲，已经是第一首歌")
                sleep(1)
                i += 1
                print(r"请重新输入你想要选择的服务菜单")
                continue

        elif n==5:
            print(r"恢复播放")
            pygame.mixer.music.unpause()

        elif n == 6:
            j += 0.1
            pygame.mixer.music.set_volume(j)
            print(r'现在的音量是：', pygame.mixer.music.get_volume())

        elif n == 7:
            if j > 0:
                j -= 0.1
                pygame.mixer.music.set_volume(j)
                print(r'现在的音量是：',pygame.mixer.music.get_volume())
            else:
                print("亲，已经是静音了哦")

        elif n==0:
            return 1




if __name__ == '__main__':
    i = 0
    j = 1
    pygame.init()        # 初始化游戏
    pygame.mixer.init()  # 初始化音频部分
    welcom()
    path = add_music_path()
    # check_event(path, i, j)
    music_name = os.listdir(r'D:\各种软件安装包\周杰伦音乐')
    select(path,i,j,music_name)



